export default {
  menu: {
    knowledgeBase: 'База знаний',
    chat: 'Диалог',
    createChat: 'Создать диалог',
    tenant: 'Информация об аккаунте',
    settings: 'Настройки системы',
    logout: 'Выход',
    uploadKnowledge: 'Загрузить знания',
    deleteRecord: 'Удалить запись',
    newSession: 'Новый диалог',
    confirmLogout: 'Вы уверены, что хотите выйти?',
    systemInfo: 'Информация о системе'
  },
  knowledgeBase: {
    title: 'База знаний',
    list: 'Список баз знаний',
    detail: 'Детали базы знаний',
    create: 'Создать базу знаний',
    edit: 'Редактировать базу знаний',
    delete: 'Удалить базу знаний',
    name: 'Название',
    description: 'Описание',
    files: 'Файлы',
    settings: 'Настройки',
    upload: 'Загрузить файл',
    uploadSuccess: 'Файл успешно загружен!',
    uploadFailed: 'Ошибка загрузки файла!',
    fileExists: 'Файл уже существует',
    notInitialized: 'База знаний не инициализирована. Пожалуйста, настройте модели в разделе настроек перед загрузкой файлов',
    getInfoFailed: 'Не удалось получить информацию о базе знаний, загрузка файла невозможна',
    missingId: 'Отсутствует ID базы знаний',
    deleteFailed: 'Не удалось удалить. Пожалуйста, попробуйте позже!',
    createKnowledgeBase: 'Создать базу знаний',
    knowledgeBaseName: 'Название базы знаний',
    enterName: 'Введите название базы знаний',
    embeddingModel: 'Модель встраивания',
    selectEmbeddingModel: 'Выберите модель встраивания',
    summaryModel: 'Модель суммаризации',
    selectSummaryModel: 'Выберите модель суммаризации',
    rerankModel: 'Модель ранжирования',
    selectRerankModel: 'Выберите модель ранжирования (опционально)',
    createSuccess: 'База знаний успешно создана',
    createFailed: 'Не удалось создать базу знаний',
    updateSuccess: 'База знаний успешно обновлена',
    updateFailed: 'Не удалось обновить базу знаний',
    deleteSuccess: 'База знаний успешно удалена',
    deleteConfirm: 'Вы уверены, что хотите удалить эту базу знаний?',
    fileName: 'Имя файла',
    fileSize: 'Размер файла',
    uploadTime: 'Время загрузки',
    status: 'Статус',
    actions: 'Действия',
    processing: 'Обработка',
    completed: 'Завершено',
    failed: 'Ошибка',
    noFiles: 'Нет файлов',
    dragFilesHere: 'Перетащите файлы сюда или',
    clickToUpload: 'нажмите для загрузки',
    supportedFormats: 'Поддерживаемые форматы',
    maxFileSize: 'Макс. размер файла',
    viewDetails: 'Просмотр деталей',
    downloadFile: 'Скачать файл',
    deleteFile: 'Удалить файл',
    confirmDeleteFile: 'Вы уверены, что хотите удалить этот файл?',
    totalFiles: 'Всего файлов',
    totalSize: 'Общий размер',
    // Дополнительные переводы для KnowledgeBase.vue
    newSession: 'Новый диалог',
    deleteDocument: 'Удалить документ',
    parsingFailed: 'Парсинг не удался',
    parsingInProgress: 'Парсинг...',
    deleteConfirmation: 'Подтверждение удаления',
    confirmDeleteDocument: 'Подтвердить удаление документа "{fileName}", после удаления восстановление невозможно',
    cancel: 'Отмена',
    confirmDelete: 'Подтвердить удаление',
    selectKnowledgeBaseFirst: 'Пожалуйста, сначала выберите базу знаний',
    sessionCreationFailed: 'Не удалось создать диалог',
    sessionCreationError: 'Ошибка создания диалога',
    settingsParsingFailed: 'Не удалось разобрать настройки',
    fileUploadEventReceived: 'Получено событие загрузки файла, загруженный ID базы знаний: {uploadedKbId}, текущий ID базы знаний: {currentKbId}',
    matchingKnowledgeBase: 'Совпадающая база знаний, начинаем обновление списка файлов',
    routeParamChange: 'Изменение параметров маршрута, повторное получение содержимого базы знаний',
    fileUploadEventListening: 'Прослушивание события загрузки файла',
    apiCallKnowledgeFiles: 'Прямой вызов API для получения списка файлов базы знаний',
    responseInterceptorData: 'Поскольку перехватчик ответа уже вернул data, result является частью данных ответа',
    hookProcessing: 'Обработка в соответствии со способом useKnowledgeBase hook',
    errorHandling: 'Обработка ошибок',
    priorityCurrentPageKbId: 'Приоритет использования ID базы знаний текущей страницы',
    fallbackLocalStorageKbId: 'Если на текущей странице нет ID базы знаний, попытка получить ID базы знаний из настроек в localStorage',
    // Дополнительные переводы для KnowledgeBaseList.vue
    createNewKnowledgeBase: 'Создать базу знаний',
    uninitializedWarning: 'Некоторые базы знаний не инициализированы, необходимо сначала настроить информацию о моделях в настройках, чтобы добавить документы знаний',
    initializedStatus: 'Инициализирована',
    notInitializedStatus: 'Не инициализирована',
    needSettingsFirst: 'Необходимо сначала настроить информацию о моделях в настройках, чтобы добавить знания',
    documents: 'Документы',
    configureModelsFirst: 'Пожалуйста, сначала настройте информацию о моделях в настройках',
    confirmDeleteKnowledgeBase: 'Подтвердить удаление этой базы знаний?',
    createKnowledgeBaseDialog: 'Создать базу знаний',
    enterNameKb: 'Введите название',
    enterDescriptionKb: 'Введите описание',
    createKb: 'Создать',
    deleted: 'Удалено',
    deleteFailedKb: 'Не удалось удалить',
    noDescription: 'Нет описания',
    emptyKnowledgeDragDrop: 'База знаний пуста, перетащите файлы для загрузки',
    pdfDocFormat: 'Файлы pdf, doc формата, не более 10 МБ',
    textMarkdownFormat: 'Файлы text, markdown формата, не более 200 КБ',
    dragFileNotText: 'Пожалуйста, перетащите файлы, а не текст или ссылки'
  },
  chat: {
    title: 'Диалог',
    newChat: 'Новый чат',
    inputPlaceholder: 'Введите ваше сообщение...',
    send: 'Отправить',
    thinking: 'Думаю...',
    regenerate: 'Сгенерировать заново',
    copy: 'Копировать',
    delete: 'Удалить',
    reference: 'Ссылка',
    noMessages: 'Нет сообщений',
    // Дополнительные переводы для компонентов чата
    waitingForAnswer: 'Ожидание ответа...',
    cannotAnswer: 'Извините, я не могу ответить на этот вопрос.',
    summarizingAnswer: 'Подведение итогов ответа...',
    loading: 'Загрузка...',
    enterDescription: 'Введите описание',
    referencedContent: 'Использовано {count} связанных материалов',
    deepThinking: 'Глубокое мышление завершено',
    knowledgeBaseQandA: 'Вопросы и ответы на основе базы знаний',
    askKnowledgeBase: 'Задайте вопрос базе знаний',
    sourcesCount: '{count} источников',
    pleaseEnterContent: 'Пожалуйста, введите содержимое!',
    pleaseUploadKnowledgeBase: 'Пожалуйста, сначала загрузите базу знаний!',
    replyingPleaseWait: 'Идёт ответ, пожалуйста, попробуйте позже!',
    createSessionFailed: 'Не удалось создать сеанс',
    createSessionError: 'Ошибка создания сеанса',
    unableToGetKnowledgeBaseId: 'Невозможно получить ID базы знаний'
  },
  settings: {
    title: 'Настройки',
    system: 'Настройки системы',
    systemConfig: 'Системная конфигурация',
    knowledgeBaseSettings: 'Настройки базы знаний',
    configureKbModels: 'Настройка моделей и параметров разделения документов для этой базы знаний',
    manageSystemModels: 'Управление и обновление системных моделей и конфигураций сервисов',
    basicInfo: 'Основная информация',
    documentSplitting: 'Разделение документов',
    apiEndpoint: 'API конечная точка',
    enterApiEndpoint: 'Введите API конечную точку, например: http://localhost',
    enterApiKey: 'Введите API ключ',
    enterKnowledgeBaseId: 'Введите ID базы знаний',
    saveConfig: 'Сохранить конфигурацию',
    reset: 'Сбросить',
    configSaved: 'Конфигурация сохранена успешно',
    enterApiEndpointRequired: 'Введите API конечную точку',
    enterApiKeyRequired: 'Введите API ключ',
    enterKnowledgeBaseIdRequired: 'Введите ID базы знаний',
    name: 'Название',
    enterName: 'Введите название',
    description: 'Описание',
    chunkSize: 'Размер блока',
    chunkOverlap: 'Перекрытие блоков',
    save: 'Сохранить',
    saving: 'Сохранение...',
    saveSuccess: 'Сохранено успешно',
    saveFailed: 'Не удалось сохранить',
    model: 'Модель',
    llmModel: 'LLM модель',
    embeddingModel: 'Модель встраивания',
    rerankModel: 'Модель ранжирования',
    vlmModel: 'Мультимодальная модель',
    modelName: 'Название модели',
    modelUrl: 'URL модели',
    apiKey: 'API ключ',
    cancel: 'Отмена',
    saveFailedSettings: 'Не удалось сохранить настройки',
    enterNameRequired: 'Введите название'
  },
  initialization: {
    title: 'Инициализация',
    welcome: 'Добро пожаловать в WeKnora',
    description: 'Пожалуйста, настройте систему перед началом работы',
    step1: 'Шаг 1: Настройка LLM модели',
    step2: 'Шаг 2: Настройка модели встраивания',
    step3: 'Шаг 3: Настройка дополнительных моделей',
    complete: 'Завершить инициализацию',
    skip: 'Пропустить',
    next: 'Далее',
    previous: 'Назад',
    // Ollama сервис
    ollamaServiceStatus: 'Статус службы Ollama',
    refreshStatus: 'Обновить статус',
    ollamaServiceAddress: 'Адрес службы Ollama',
    notConfigured: 'Не настроено',
    notRunning: 'Не запущено',
    normal: 'Нормально',
    installedModels: 'Установленные модели',
    none: 'Временно отсутствует',
    // База знаний
    knowledgeBaseInfo: 'Информация о базе знаний',
    knowledgeBaseName: 'Название базы знаний',
    knowledgeBaseNamePlaceholder: 'Введите название базы знаний',
    knowledgeBaseDescription: 'Описание базы знаний',
    knowledgeBaseDescriptionPlaceholder: 'Введите описание базы знаний',
    // LLM модель
    llmModelConfig: 'Конфигурация LLM большой языковой модели',
    modelSource: 'Источник модели',
    local: 'Ollama (локальный)',
    remote: 'Remote API (удаленный)',
    modelName: 'Название модели',
    modelNamePlaceholder: 'Например: qwen3:0.6b',
    baseUrl: 'Base URL',
    baseUrlPlaceholder: 'Например: https://api.openai.com/v1, удалите часть /chat/completions в конце URL',
    apiKey: 'API Key (необязательно)',
    apiKeyPlaceholder: 'Введите API Key (необязательно)',
    downloadModel: 'Скачать модель',
    installed: 'Установлено',
    notInstalled: 'Не установлено',
    notChecked: 'Не проверено',
    checkConnection: 'Проверить соединение',
    connectionNormal: 'Соединение в норме',
    connectionFailed: 'Ошибка соединения',
    checkingConnection: 'Проверка соединения',
    // Embedding модель
    embeddingModelConfig: 'Конфигурация модели встраивания',
    embeddingWarning: 'В базе знаний уже есть файлы, невозможно изменить конфигурацию модели встраивания',
    dimension: 'Размерность',
    dimensionPlaceholder: 'Введите размерность вектора',
    detectDimension: 'Определить размерность',
    // Rerank модель
    rerankModelConfig: 'Конфигурация модели ранжирования',
    enableRerank: 'Включить модель ранжирования',
    // Мультимодальные настройки
    multimodalConfig: 'Мультимодальная конфигурация',
    enableMultimodal: 'Включить извлечение информации из изображений',
    visualLanguageModelConfig: 'Конфигурация визуально-языковой модели',
    interfaceType: 'Тип интерфейса',
    openaiCompatible: 'Совместимый с OpenAI интерфейс',
    // Настройки хранилища
    storageServiceConfig: 'Конфигурация службы хранения',
    storageType: 'Тип хранения',
    bucketName: 'Bucket Name',
    bucketNamePlaceholder: 'Введите имя Bucket',
    pathPrefix: 'Path Prefix',
    pathPrefixPlaceholder: 'Например: images',
    secretId: 'Secret ID',
    secretIdPlaceholder: 'Введите COS Secret ID',
    secretKey: 'Secret Key',
    secretKeyPlaceholder: 'Введите COS Secret Key',
    region: 'Region',
    regionPlaceholder: 'Например: ap-beijing',
    appId: 'App ID',
    appIdPlaceholder: 'Введите App ID',
    // Тестирование мультимодальных функций
    functionTest: 'Тест функции',
    testDescription: 'Загрузите изображение для тестирования функций описания изображений и распознавания текста модели VLM',
    selectImage: 'Выбрать изображение',
    startTest: 'Начать тест',
    testResult: 'Результат теста',
    imageDescription: 'Описание изображения:',
    textRecognition: 'Распознавание текста:',
    processingTime: 'Время обработки:',
    testFailed: 'Тест не удался',
    multimodalProcessingFailed: 'Ошибка мультимодальной обработки',
    // Разделение документов
    documentSplittingConfig: 'Конфигурация разделения документов',
    splittingStrategy: 'Стратегия разделения',
    balancedMode: 'Сбалансированный режим',
    balancedModeDesc: 'Размер блока: 1000 / Перекрытие: 200',
    precisionMode: 'Точный режим',
    precisionModeDesc: 'Размер блока: 512 / Перекрытие: 100',
    contextMode: 'Контекстный режим',
    contextModeDesc: 'Размер блока: 2048 / Перекрытие: 400',
    custom: 'Пользовательский',
    customDesc: 'Настроить параметры вручную',
    chunkSize: 'Размер блока',
    chunkOverlap: 'Перекрытие блоков',
    separatorSettings: 'Настройки разделителей',
    selectOrCustomSeparators: 'Выберите или настройте разделители',
    characters: 'символов',
    separatorParagraph: 'Разделитель абзацев (\\n\\n)',
    separatorNewline: 'Перевод строки (\\n)',
    separatorPeriod: 'Точка (。)',
    separatorExclamation: 'Восклицательный знак (！)',
    separatorQuestion: 'Вопросительный знак (？)',
    separatorSemicolon: 'Точка с запятой (;)',
    separatorChineseSemicolon: 'Китайская точка с запятой (；)',
    separatorComma: 'Запятая (,)',
    separatorChineseComma: 'Китайская запятая (，)',
    // Извлечение сущностей и отношений
    entityRelationExtraction: 'Извлечение сущностей и отношений',
    enableEntityRelationExtraction: 'Включить извлечение сущностей и отношений',
    relationTypeConfig: 'Конфигурация типов отношений',
    relationType: 'Тип отношения',
    generateRandomTags: 'Сгенерировать случайные теги',
    completeModelConfig: 'Пожалуйста, завершите конфигурацию модели',
    systemWillExtract: 'Система будет извлекать соответствующие сущности и отношения из текста в соответствии с выбранными типами отношений',
    extractionExample: 'Пример извлечения',
    sampleText: 'Пример текста',
    sampleTextPlaceholder: 'Введите текст для анализа, например: "Красный особняк", также известный как "Сон в красном тереме", является одним из четырех великих классических произведений китайской литературы, написанным Цинь Сюэцином в династии Цин...',
    generateRandomText: 'Сгенерировать случайный текст',
    entityList: 'Список сущностей',
    nodeName: 'Имя узла',
    nodeNamePlaceholder: 'Имя узла',
    addAttribute: 'Добавить атрибут',
    attributeValue: 'Значение атрибута',
    attributeValuePlaceholder: 'Значение атрибута',
    addEntity: 'Добавить сущность',
    completeEntityInfo: 'Пожалуйста, завершите информацию о сущности',
    relationConnection: 'Соединение отношений',
    selectEntity: 'Выберите сущность',
    addRelation: 'Добавить отношение',
    completeRelationInfo: 'Пожалуйста, завершите информацию об отношении',
    startExtraction: 'Начать извлечение',
    extracting: 'Извлечение...',
    defaultExample: 'Пример по умолчанию',
    clearExample: 'Очистить пример',
    // Кнопки и сообщения
    updateKnowledgeBaseSettings: 'Обновить настройки базы знаний',
    updateConfigInfo: 'Обновить информацию о конфигурации',
    completeConfig: 'Завершить конфигурацию',
    waitForDownloads: 'Пожалуйста, дождитесь завершения загрузки всех моделей Ollama перед обновлением конфигурации',
    completeModelConfigInfo: 'Пожалуйста, завершите информацию о конфигурации модели',
    knowledgeBaseIdMissing: 'Отсутствует ID базы знаний',
    knowledgeBaseSettingsUpdateSuccess: 'Настройки базы знаний успешно обновлены',
    configUpdateSuccess: 'Конфигурация успешно обновлена',
    systemInitComplete: 'Инициализация системы завершена',
    operationFailed: 'Операция не удалась',
    updateKnowledgeBaseInfoFailed: 'Не удалось обновить базовую информацию о базе знаний',
    knowledgeBaseIdMissingCannotSave: 'Отсутствует ID базы знаний, невозможно сохранить конфигурацию',
    operationFailedCheckNetwork: 'Операция не удалась, проверьте сетевое соединение',
    imageUploadSuccess: 'Изображение успешно загружено, можно начать тестирование',
    multimodalConfigIncomplete: 'Мультимодальная конфигурация неполная, пожалуйста, завершите мультимодальную конфигурацию перед загрузкой изображения',
    pleaseSelectImage: 'Пожалуйста, выберите изображение',
    multimodalTestSuccess: 'Мультимодальный тест успешен',
    multimodalTestFailed: 'Мультимодальный тест не удался',
    pleaseEnterSampleText: 'Пожалуйста, введите текст примера',
    pleaseEnterRelationType: 'Пожалуйста, введите тип отношения',
    pleaseEnterLLMModelConfig: 'Пожалуйста, введите конфигурацию LLM большой языковой модели',
    noValidNodesExtracted: 'Не извлечено допустимых узлов',
    noValidRelationsExtracted: 'Не извлечено допустимых отношений',
    extractionFailedCheckNetwork: 'Извлечение не удалось, проверьте сетевое соединение или формат текста',
    generateFailedRetry: 'Генерация не удалась, попробуйте еще раз',
    pleaseCheckForm: 'Пожалуйста, проверьте правильность заполнения формы',
    detectionSuccessful: 'Обнаружение успешно, размерность автоматически заполнена как',
    detectionFailed: 'Обнаружение не удалось',
    detectionFailedCheckConfig: 'Обнаружение не удалось, проверьте конфигурацию',
    modelDownloadSuccess: 'Модель успешно загружена',
    modelDownloadFailed: 'Не удалось загрузить модель',
    downloadStartFailed: 'Не удалось начать загрузку',
    queryProgressFailed: 'Не удалось запросить прогресс',
    checkOllamaStatusFailed: 'Не удалось проверить статус Ollama',
    getKnowledgeBaseInfoFailed: 'Не удалось получить информацию о базе знаний',
    textRelationExtractionFailed: 'Не удалось извлечь текстовые отношения',
    // Валидация
    pleaseEnterKnowledgeBaseName: 'Пожалуйста, введите название базы знаний',
    knowledgeBaseNameLength: 'Длина названия базы знаний должна быть от 1 до 50 символов',
    knowledgeBaseDescriptionLength: 'Длина описания базы знаний не может превышать 200 символов',
    pleaseEnterLLMModelName: 'Пожалуйста, введите название LLM модели',
    pleaseEnterBaseURL: 'Пожалуйста, введите BaseURL',
    pleaseEnterEmbeddingModelName: 'Пожалуйста, введите название модели встраивания',
    pleaseEnterEmbeddingDimension: 'Пожалуйста, введите размерность встраивания',
    dimensionMustBeInteger: 'Размерность должна быть допустимым целым числом, обычно 768, 1024, 1536, 3584 и т.д.',
    pleaseEnterTextContent: 'Пожалуйста, введите текстовое содержание',
    textContentMinLength: 'Текстовое содержание должно содержать не менее 10 символов',
    pleaseEnterValidTag: 'Пожалуйста, введите действительный тег',
    tagAlreadyExists: 'Этот тег уже существует',
    // Дополнительные переводы для InitializationContent.vue
    checkFailed: 'Проверка не удалась',
    startingDownload: 'Запуск загрузки...',
    downloadStarted: 'Загрузка началась',
    model: 'Модель',
    startModelDownloadFailed: 'Не удалось запустить загрузку модели',
    downloadCompleted: 'Загрузка завершена',
    downloadFailed: 'Загрузка не удалась',
    knowledgeBaseSettingsModeMissingId: 'В режиме настроек базы знаний отсутствует ID базы знаний',
    completeEmbeddingConfig: 'Пожалуйста, сначала полностью заполните конфигурацию встраивания',
    detectionSuccess: 'Обнаружение успешно,',
    dimensionAutoFilled: 'размерность автоматически заполнена:',
    checkFormCorrectness: 'Пожалуйста, проверьте правильность заполнения формы',
    systemInitializationCompleted: 'Инициализация системы завершена',
    generationFailedRetry: 'Генерация не удалась, пожалуйста, попробуйте еще раз',
    chunkSizeDesc: 'Размер каждого текстового блока. Большие блоки сохраняют больше контекста, но могут снизить точность поиска.',
    chunkOverlapDesc: 'Количество символов, перекрывающихся между соседними блоками. Помогает сохранить контекст на границах блоков.',
    selectRelationType: 'Выберите тип отношения'
  },
  auth: {
    login: 'Вход',
    logout: 'Выход',
    username: 'Имя пользователя',
    email: 'Почта Email',
    password: 'Пароль',
    confirmPassword: 'Подтвердите пароль',
    rememberMe: 'Запомнить меня',
    forgotPassword: 'Забыли пароль?',
    loginSuccess: 'Вход выполнен успешно!',
    loginFailed: 'Ошибка входа',
    loggingIn: 'Вход...',
    register: 'Регистрация',
    registering: 'Регистрация...',
    createAccount: 'Создать аккаунт',
    haveAccount: 'Уже есть аккаунт?',
    noAccount: 'Ещё нет аккаунта?',
    backToLogin: 'Вернуться ко входу',
    registerNow: 'Зарегистрироваться',
    registerSuccess: 'Регистрация успешна! Система создала для вас эксклюзивного арендатора, пожалуйста, войдите',
    registerFailed: 'Ошибка регистрации',
    subtitle: 'Фреймворк понимания документов и семантического поиска на основе больших моделей',
    registerSubtitle: 'После регистрации система создаст для вас эксклюзивного арендатора',
    emailPlaceholder: 'Введите адрес электронной почты',
    passwordPlaceholder: 'Введите пароль (8-32 символа, включая буквы и цифры)',
    confirmPasswordPlaceholder: 'Введите пароль ещё раз',
    usernamePlaceholder: 'Введите имя пользователя',
    emailRequired: 'Введите адрес электронной почты',
    emailInvalid: 'Введите правильный формат электронной почты',
    passwordRequired: 'Введите пароль',
    passwordMinLength: 'Пароль должен быть не менее 8 символов',
    passwordMaxLength: 'Пароль не может превышать 32 символа',
    passwordMustContainLetter: 'Пароль должен содержать буквы',
    passwordMustContainNumber: 'Пароль должен содержать цифры',
    usernameRequired: 'Введите имя пользователя',
    usernameMinLength: 'Имя пользователя должно быть не менее 2 символов',
    usernameMaxLength: 'Имя пользователя не может превышать 20 символов',
    usernameInvalid: 'Имя пользователя может содержать только буквы, цифры, подчёркивания и китайские иероглифы',
    confirmPasswordRequired: 'Подтвердите пароль',
    passwordMismatch: 'Введённые пароли не совпадают',
    loginError: 'Ошибка входа, пожалуйста, проверьте электронную почту или пароль',
    loginErrorRetry: 'Ошибка входа, пожалуйста, повторите попытку позже',
    registerError: 'Ошибка регистрации, пожалуйста, повторите попытку позже',
    forgotPasswordNotAvailable: 'Функция восстановления пароля временно недоступна, пожалуйста, свяжитесь с администратором'
  },
  common: {
    confirm: 'Подтвердить',
    cancel: 'Отмена',
    save: 'Сохранить',
    delete: 'Удалить',
    edit: 'Редактировать',
    create: 'Создать',
    search: 'Поиск',
    filter: 'Фильтр',
    export: 'Экспорт',
    import: 'Импорт',
    upload: 'Загрузить',
    download: 'Скачать',
    refresh: 'Обновить',
    loading: 'Загрузка...',
    noData: 'Нет данных',
    error: 'Ошибка',
    success: 'Успешно',
    warning: 'Предупреждение',
    info: 'Информация',
    yes: 'Да',
    no: 'Нет',
    ok: 'OK',
    close: 'Закрыть',
    back: 'Назад',
    next: 'Далее',
    finish: 'Завершить',
    all: 'Все',
    reset: 'Сбросить',
    clear: 'Очистить'
  },
  file: {
    upload: 'Загрузить файл',
    uploadSuccess: 'Файл успешно загружен',
    uploadFailed: 'Ошибка загрузки файла',
    delete: 'Удалить файл',
    deleteSuccess: 'Файл успешно удален',
    deleteFailed: 'Ошибка удаления файла',
    download: 'Скачать файл',
    preview: 'Предпросмотр',
    unsupportedFormat: 'Неподдерживаемый формат файла',
    maxSizeExceeded: 'Превышен максимальный размер файла',
    selectFile: 'Выберите файл'
  },
  tenant: {
    title: 'Информация об арендаторе',
    name: 'Имя арендатора',
    id: 'ID арендатора',
    createdAt: 'Дата создания',
    updatedAt: 'Дата обновления',
    status: 'Статус',
    active: 'Активен',
    inactive: 'Неактивен',
    // Дополнительные переводы для TenantInfo.vue
    systemInfo: 'Системная информация',
    viewSystemInfo: 'Просмотр информации о версии системы и конфигурации учётной записи пользователя',
    version: 'Версия',
    buildTime: 'Время сборки',
    goVersion: 'Версия Go',
    userInfo: 'Информация о пользователе',
    userId: 'ID пользователя',
    username: 'Имя пользователя',
    email: 'Электронная почта',
    tenantInfo: 'Информация об арендаторе',
    tenantId: 'ID арендатора',
    tenantName: 'Название арендатора',
    description: 'Описание',
    business: 'Бизнес',
    noDescription: 'Нет описания',
    noBusiness: 'Нет',
    statusActive: 'Активен',
    statusInactive: 'Не активирован',
    statusSuspended: 'Приостановлен',
    statusUnknown: 'Неизвестен',
    apiKey: 'API Key',
    keepApiKeySafe: 'Пожалуйста, храните ваш API Key в безопасности, не раскрывайте его в общественных местах или репозиториях кода',
    storageInfo: 'Информация о хранилище',
    storageQuota: 'Квота хранилища',
    used: 'Использовано',
    usage: 'Использование',
    apiDevDocs: 'Документация для разработчиков API',
    useApiKey: 'Используйте ваш API Key для начала разработки, просмотрите полную документацию API и примеры кода.',
    viewApiDoc: 'Просмотреть документацию API',
    loadingAccountInfo: 'Загрузка информации об учётной записи...',
    loadFailed: 'Загрузка не удалась',
    retry: 'Повторить',
    apiKeyCopied: 'API Key скопирован в буфер обмена',
    unknown: 'Неизвестно',
    formatError: 'Ошибка формата'
  },
  error: {
    network: 'Ошибка сети',
    server: 'Ошибка сервера',
    notFound: 'Не найдено',
    unauthorized: 'Не авторизован',
    forbidden: 'Доступ запрещен',
    unknown: 'Неизвестная ошибка',
    tryAgain: 'Пожалуйста, попробуйте еще раз'
  },
  model: {
    llmModel: 'LLM модель',
    embeddingModel: 'Модель встраивания',
    rerankModel: 'Модель ранжирования',
    vlmModel: 'Мультимодальная модель',
    modelName: 'Название модели',
    modelProvider: 'Поставщик модели',
    modelUrl: 'URL модели',
    apiKey: 'API ключ',
    testConnection: 'Проверить соединение',
    connectionSuccess: 'Соединение успешно',
    connectionFailed: 'Ошибка соединения',
    dimension: 'Размерность',
    maxTokens: 'Макс. токенов',
    temperature: 'Температура',
    topP: 'Top P',
    selectModel: 'Выберите модель',
    customModel: 'Пользовательская модель',
    builtinModel: 'Встроенная модель'
  }
}